// 配置微信接口 如：文章分享 在线支付等
import Vue from 'vue'
import { Toast } from 'vant'
import wx from 'weixin-jsapi' // 微信支付jsdk引入
const vm = new Vue() // 实例化vue
const jsApiList = [
  'onMenuShareAppMessage', 'getLocation', 'scanQRCode', 'updateTimelineShareData',
  'onMenuShareTimeline', 'onMenuShareQQ', 'onMenuShareWeibo', 'chooseWXPay', 'openLocation']
const getJspApi = {
  // 配置jsdk
  getJsApiAuth (url) { // 配置jsdk
    let urls = process.env.NODE_ENV === 'production' ? url : 'https://qr.yunfandavip.com/dist/index.html'
    vm.$api.wxLogin.getJsApiAuth({ url: urls }).then(res => {
      console.log('公众号认证返回结果', res.data.data)
      wx.config({
        debug: false, // 开启调试模式
        appId: res.data.data.appid, // 必填，公众号的唯一标识
        timestamp: res.data.data.timestamp, // 必填，生成签名的时间戳
        nonceStr: res.data.data.noncestr, // 必填，生成签名的随机串
        signature: res.data.data.signature, // 必填，签名
        jsApiList: jsApiList // 必填，需要使用的JS接口列表
      })
      this.checkJsApi()
    })
  },
  // 微信加载接口
  getReady (data) {
    return new Promise((resolve, reject) => {
      wx.ready(() => {

      })
    })
  },
  // 调用分享接口 自定义“分享给朋友”及“分享到QQ”按钮的分享内容（1.4.0）
  getShareFriend (data) {
    return new Promise((resolve, reject) => {
      wx.ready(() => {
        wx.updateAppMessageShareData({
          title: data.title, // 分享标题
          desc: data.desc, // 分享描述
          link: data.link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
          imgUrl: data.imgUrl, // 分享图标
          success: (res) => {
            // 设置成功
            res.success = true
            resolve(res)
          }
        })
      })
    })
  },
  // 调用分享接口 自定义“分享给朋友”及“分享到QQ”按钮的分享内容（1.4.0）
  getShareCircle (data) {
    return new Promise((resolve, reject) => {
      wx.ready(() => {
        wx.updateTimelineShareData({
          title: data.title, // 分享标题
          link: data.link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
          imgUrl: data.imgUrl, // 分享图标
          success: (res) => {
            // 设置成功
            res.success = true
            resolve(res)
          }
        })
      })
    })
  },
  // 调起微信扫一扫接口
  getWxscanQRCode (dtat) {
    return new Promise((resolve, reject) => {
      wx.ready(() => {
        wx.scanQRCode({
          needResult: 1, // 默认为0，扫描结果由微信处理，1则直接返回扫描结果，
          scanType: ['qrCode', 'barCode'], // 可以指定扫二维码还是一维码，默认二者都有
          success: (res) => {
            let result = res.resultStr // 当needResult 为 1 时，扫码返回的结果
            window.location.replace(`${result}&isSao=1`)
            result.success = true
            resolve(result)
          }
        })
      })
    })
  },
  // 获取地理位置接口
  getWxLocation (data) {
    console.log('是否调用了微信配置的')
    return new Promise((resolve, reject) => {
      wx.ready(() => {
        wx.getLocation({
          type: 'gcj02', // 默认为wgs84的gps坐标，如果要返回直接给openLocation用的火星坐标，可传入'gcj02'
          success: (res) => {
            // 设置成功
            console.log('获取地址经纬度', res)
            res.success = true
            resolve(res)
            // 获取经纬度
            // let latLng = new qq.maps.LatLng(res.latitude, res.longitude)
            // let getAddr = new qq.maps.Geocoder({
            //   complete: (res) => {
            //     let addressCur = res.detail
            //     let allAddress = res.detail.addressComponents
            //     // _this.address = res.detail.nearPois
            //     let address = res.detail.address
            //     // alert('地址：' + JSON.stringify(_this.address))
            //     console.log('地址：', address, addressCur, allAddress.province, allAddress.city, allAddress.district)
            //     resolve(allAddress)
            //     alert('地址：' + address + allAddress.province + allAddress.city + allAddress.district)
            //   }
            // })
            // getAddr.getAddress(latLng)
            // addressReverse.getAddr.getAddress(latLng)
          }
        })
      })
    })
  },
  // 腾讯地图你地址解析
  addressReverse () {
    let getAddr = new qq.maps.Geocoder({
      complete: (res) => {
        let addressCur = res.detail
        let allAddress = res.detail.addressComponents
        // _this.address = res.detail.nearPois
        let address = res.detail.address
        // alert('地址：' + JSON.stringify(_this.address))
        console.log('地址：', address, allAddress.province, allAddress.city, allAddress.district)
        // alert('地址：' + address + allAddress.province + allAddress.city + allAddress.district)
      }
    })
  },
  // 检查微信的接口是否可用
  checkJsApi () {
    wx.checkJsApi({
      jsApiList: [
        'onMenuShareTimeline', 'onMenuShareAppMessage',
        'onMenuShareQQ', 'onMenuShareWeibo', 'onMenuShareQZone',
        'updateAppMessageShareData', 'updateTimelineShareData', 'addCard'
      ], // 需要检测的JS接口列表，所有JS接口列表见附录2,
      success: (res) => {
        // 以键值对的形式返回，可用的api值true，不可用为false
        // 如：{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
        console.log(res)
      }
    })
  },
  // 添加卡包
  addCard (cardId, cardExt) {
    wx.addCard({
      cardList: [
        {
          cardId: cardId,
          cardExt: cardExt
        }
      ],
      success (res) {
      },
      cancel: function (res) {
      }
    })
  }
}
export default getJspApi
